The Web is designed for requesting readily available resources. The protocol of the Web, Hypertext Transfer Protocol (HTTP), is a request/response protocol. When a command identified in an HTTP request cannot be performed immediately a server can make a requesting user agent wait by holding a connection with the requester open until the command can be performed. Alternatively, the server may send an HTTP response including a status code indicating the command cannot be performed. Alternatively, some applications return a web page in the HTTP response that informs the user that s/he will be receiving a response out-of-band via, for example, email. Other applications return a web page or other presentable representation that tells the user to check back later by sending another command via another HTTP request to check on the status of a long-running command or an otherwise uncompleted command. Another option currently used is to configure a server to return, to a browser, a script that repeatedly sends additional HTTP requests identifying a command until the command is complete. This occupies a window or tab of a web browser and requires the user to wait. If the user closes the waiting window or tab, the request is cancelled.
Out-of-band responses such as an email are typically used for relatively long wait times and polling via a script or by the user is typically used for relatively shorter wait times. Techniques such as notification by email have the advantage of freeing browser resources during the wait and allow the user to continue browsing without having to maintain an open window or tab for the uncompleted command or operation. Polling techniques allow the user to receive a command response to a completed command in the same application environment in which the command is requested, typically a web browser. Ideally, the advantages of these approaches would be combined and the disadvantages avoided. Current solutions do not achieve these goals.
Accordingly, there exists a need for methods, systems, and computer program products for processing an attached command response.